package com.data.center.dictionary;

import com.data.center.exception.exception.BizException;
import com.data.center.exception.info.CommonEnum;

/**
 * @author Li_Jx
 * @description: 国家编码映射枚举类CD000003
 * @date 2023/9/20 10:06
 */
public enum CountryCode {
    ABW("AW", "ABW", "阿鲁巴", "Aruba", "533", "北美洲"),
    AFG("AF", "AFG", "阿富汗", "Afghanistan", "004", "亚洲"),
    AGO("AO", "AGO", "安哥拉", "Angola", "024", "非洲"),
    AIA("AI", "AIA", "安圭拉", "Anguilla", "660", "北美洲"),
    ALB("AL", "ALB", "阿尔巴尼亚", "Albania", "008", "欧洲"),
    AND("AD", "AND", "安道尔", "Andorra", "020", "欧洲"),
    ANT("AN", "ANT", "荷属安的列斯", "Netherlands Antilles", "530", "北美洲"),
    ARE("AE", "ARE", "阿联酋", "United Arab Emirates", "784", "亚洲"),
    ARG("AR", "ARG", "阿根廷", "Argentina", "032", "南美洲"),
    ARM("AM", "ARM", "亚美尼亚", "Armenia", "051", "亚洲"),
    ASM("AS", "ASM", "美属萨摩亚", "American Samoa", "016", "大洋洲"),
    ATA("AQ", "ATA", "南极洲", "Antarctica", "010", "南极洲"),
    ATF("TF", "ATF", "法属南部领地", "French Southern Territories", "260", "非洲"),
    ATG("AG", "ATG", "安提瓜和巴布达", "Antigua And Barbuda", "028", "北美洲"),
    AUS("AU", "AUS", "澳大利亚", "Australia", "036", "大洋洲"),
    AUT("AT", "AUT", "奥地利", "Austria", "040", "欧洲"),
    AZE("AZ", "AZE", "阿塞拜疆", "Azerbaijan", "031", "亚洲"),
    BDI("BI", "BDI", "布隆迪", "Burundi", "108", "非洲"),
    BEL("BE", "BEL", "比利时", "Belgium", "056", "欧洲"),
    BEN("BJ", "BEN", "贝宁", "Benin", "204", "非洲"),
    BFA("BF", "BFA", "布基纳法索", "Burkina Faso", "854", "非洲"),
    BGD("BD", "BGD", "孟加拉国", "Bangladesh", "050", "亚洲"),
    BGR("BG", "BGR", "保加利亚", "Bulgaria", "100", "欧洲"),
    BHR("BH", "BHR", "巴林", "Bahrain", "048", "亚洲"),
    BHS("BS", "BHS", "巴哈马", "Bahamas", "044", "北美洲"),
    BIH("BA", "BIH", "波黑", "Bosnia And Herzegovina", "070", "欧洲"),
    BLR("BY", "BLR", "白俄罗斯", "Belarus", "112", "欧洲"),
    BLZ("BZ", "BLZ", "伯利兹", "Belize", "084", "北美洲"),
    BMU("BM", "BMU", "百慕大", "Bermuda", "060", "北美洲"),
    BOL("BO", "BOL", "玻利维亚", "Bolivia", "068", "南美洲"),
    BRA("BR", "BRA", "巴西", "Brazil", "076", "南美洲"),
    BRB("BB", "BRB", "巴巴多斯", "Barbados", "052", "北美洲"),
    BRN("BN", "BRN", "文莱", "Brunei Darussalam", "096", "亚洲"),
    BTN("BT", "BTN", "不丹", "Bhutan", "064", "亚洲"),
    BVT("BV", "BVT", "布维岛", "Bouvet Island", "074", "南极洲"),
    BWA("BW", "BWA", "博茨瓦纳", "Botswana", "072", "非洲"),
    CAF("CF", "CAF", "中非", "Central Africa", "140", "非洲"),
    CAN("CA", "CAN", "加拿大", "Canada", "124", "北美洲"),
    CCK("CC", "CCK", "科科斯（基林）群岛", "Cocos (Keeling) Islands", "166", "大洋洲"),
    CHE("CH", "CHE", "瑞士", "Switzerland", "756", "欧洲"),
    CHL("CL", "CHL", "智利", "Chile", "152", "南美洲"),
    CHN("CN", "CHN", "中国", "China", "156", "亚洲"),
    CIV("CI", "CIV", "科特迪瓦", "Cote D'Ivoire", "384", "非洲"),
    CMR("CM", "CMR", "喀麦隆", "Cameroon", "120", "非洲"),
    COD("CD", "COD", "刚果（金）", "Congo", "180", "非洲"),
    COG("CG", "COG", "刚果（布）", "Congo", "178", "非洲"),
    COK("CK", "COK", "库克群岛", "Cook Islands", "184", "大洋洲"),
    COL("CO", "COL", "哥伦比亚", "Colombia", "170", "南美洲"),
    COM("KM", "COM", "科摩罗", "Comoros", "174", "非洲"),
    CPV("CV", "CPV", "佛得角", "Cape Verde", "132", "非洲"),
    CRI("CR", "CRI", "哥斯达黎加", "Costa Rica", "188", "北美洲"),
    CUB("CU", "CUB", "古巴", "Cuba", "192", "北美洲"),
    CXR("CX", "CXR", "圣诞岛", "The Territory of Christmas Island", "162", "大洋洲"),
    CYM("KY", "CYM", "开曼群岛", "Cayman Islands", "136", "北美洲"),
    CYP("CY", "CYP", "塞浦路斯", "Cyprus", "196", "亚洲"),
    CZE("CZ", "CZE", "捷克", "Czech Repoublic", "203", "欧洲"),
    DEU("DE", "DEU", "德国", "Germany", "276", "欧洲"),
    DJI("DJ", "DJI", "吉布提", "Djibouti", "262", "非洲"),
    DMA("DM", "DMA", "多米尼克", "Dominica", "212", "北美洲"),
    DNK("DK", "DNK", "丹麦", "Denmark", "208", "欧洲"),
    DOM("DO", "DOM", "多米尼加", "Dominican Republic", "214", "北美洲"),
    DZA("DZ", "DZA", "阿尔及利亚", "Algeria", "012", "非洲"),
    ECU("EC", "ECU", "厄瓜多尔", "Ecuador", "218", "南美洲"),
    EGY("EG", "EGY", "埃及", "Egypt", "818", "非洲"),
    ERI("ER", "ERI", "厄立特里亚", "Eritrea", "232", "非洲"),
    ESH("EH", "ESH", "西撒哈拉", "Western Sahara", "732", "非洲"),
    ESP("ES", "ESP", "西班牙", "Spain", "724", "欧洲"),
    EST("EE", "EST", "爱沙尼亚", "Estonia", "233", "欧洲"),
    ETH("ET", "ETH", "埃塞俄比亚", "Ethiopia", "231", "非洲"),
    FIN("FI", "FIN", "芬兰", "Finland", "246", "欧洲"),
    FJI("FJ", "FJI", "斐济", "Fiji", "242", "大洋洲"),
    FLK("FK", "FLK", "福克兰群岛（马尔维纳斯）", "Falkland Islands", "238", "南美洲"),
    FRA("FR", "FRA", "法国", "France", "250", "欧洲"),
    FRO("FO", "FRO", "法罗群岛", "Faroe Islands", "234", "欧洲"),
    FSM("FM", "FSM", "密克罗尼西亚联邦", "Micronesia", "583", "大洋洲"),
    GAB("GA", "GAB", "加蓬", "Gabon", "266", "非洲"),
    GBR("GB", "GBR", "英国", "United Kingdom", "826", "欧洲"),
    GEO("GE", "GEO", "格鲁吉亚", "Georgia", "268", "亚洲"),
    GHA("GH", "GHA", "加纳", "Ghana", "288", "非洲"),
    GIB("GI", "GIB", "直布罗陀", "Gibraltar", "292", "欧洲"),
    GIN("GN", "GIN", "几内亚", "Guinea", "324", "非洲"),
    GLP("GP", "GLP", "瓜德罗普", "Guadeloupe", "312", "北美洲"),
    GMB("GM", "GMB", "冈比亚", "Gambia", "270", "非洲"),
    GNB("GW", "GNB", "几内亚比绍", "Guine-Bissau", "624", "非洲"),
    GNQ("GQ", "GNQ", "赤道几内亚", "Equatorial Guinea", "226", "非洲"),
    GRC("GR", "GRC", "希腊", "Greece", "300", "欧洲"),
    GRD("GD", "GRD", "格林纳达", "Grenada", "308", "北美洲"),
    GRL("GL", "GRL", "格陵兰", "Greenland", "304", "北美洲"),
    GTM("GT", "GTM", "危地马拉", "Guatemala", "320", "北美洲"),
    GUF("GF", "GUF", "法属圭亚那", "French Guiana", "254", "南美洲"),
    GUM("GU", "GUM", "关岛", "The Territory of Guam", "316", "大洋洲"),
    GUY("GY", "GUY", "圭亚那", "Guyana", "328", "南美洲"),
    HKG("HK", "HKG", "香港", "Hong Kong", "344", "亚洲"),
    HMD("HM", "HMD", "赫德岛和麦克唐纳岛", "Heard Island and McDonald Islands", "334", "大洋洲"),
    HND("HN", "HND", "洪都拉斯", "Honduras", "340", "北美洲"),
    HRV("HR", "HRV", "克罗地亚", "Croatia", "191", "欧洲"),
    HTI("HT", "HTI", "海地", "Haiti", "332", "北美洲"),
    HUN("HU", "HUN", "匈牙利", "Hungary", "348", "欧洲"),
    IDN("ID", "IDN", "印度尼西亚", "Indonesia", "360", "亚洲"),
    IND("IN", "IND", "印度", "India", "356", "亚洲"),
    IOT("IO", "IOT", "英属印度洋领地", "British Indian Ocean Territory", "086", "亚洲"),
    IRL("IE", "IRL", "爱尔兰", "Ireland", "372", "欧洲"),
    IRN("IR", "IRN", "伊朗", "Iran", "364", "亚洲"),
    IRQ("IQ", "IRQ", "伊拉克", "Iraq", "368", "亚洲"),
    ISL("IS", "ISL", "冰岛", "Iceland", "352", "欧洲"),
    ISR("IL", "ISR", "以色列", "Israel", "376", "亚洲"),
    ITA("IT", "ITA", "意大利", "Italy", "380", "欧洲"),
    JAM("JM", "JAM", "牙买加", "Jamaica", "388", "北美洲"),
    JOR("JO", "JOR", "约旦", "Jordan", "400", "亚洲"),
    JPN("JP", "JPN", "日本", "Japan", "392", "亚洲"),
    KAZ("KZ", "KAZ", "哈萨克斯坦", "Kazakhstan", "398", "亚洲"),
    KEN("KE", "KEN", "肯尼亚", "Kenya", "404", "非洲"),
    KGZ("KG", "KGZ", "吉尔吉斯斯坦", "Kyrgyzstan", "417", "亚洲"),
    KHM("KH", "KHM", "柬埔寨", "Cambodia", "116", "亚洲"),
    KIR("KI", "KIR", "基里巴斯", "Kiribati", "296", "大洋洲"),
    KNA("KN", "KNA", "圣基茨和尼维斯", "Saint Kitts And Nevis", "659", "北美洲"),
    KOR("KR", "KOR", "韩国", "Korea,Republic Of", "410", "亚洲"),
    KWT("KW", "KWT", "科威特", "Kuwait", "414", "亚洲"),
    LAO("LA", "LAO", "老挝", "Laos", "418", "亚洲"),
    LBN("LB", "LBN", "黎巴嫩", "Lebanon", "422", "亚洲"),
    LBR("LR", "LBR", "利比里亚", "Liberia", "430", "非洲"),
    LBY("LY", "LBY", "利比亚", "Libya", "434", "非洲"),
    LCA("LC", "LCA", "圣卢西亚", "Saint Lucia", "662", "北美洲"),
    LIE("LI", "LIE", "列支敦士登", "Liechtenstein", "438", "欧洲"),
    LKA("LK", "LKA", "斯里兰卡", "Sri Lanka", "144", "亚洲"),
    LSO("LS", "LSO", "莱索托", "Lesotho", "426", "非洲"),
    LTU("LT", "LTU", "立陶宛", "Lithuania", "440", "欧洲"),
    LUX("LU", "LUX", "卢森堡", "Luxembourg", "442", "欧洲"),
    LVA("LV", "LVA", "拉脱维亚", "Latvia", "428", "欧洲"),
    MAC("MO", "MAC", "澳门", "Macao", "446", "亚洲"),
    MAR("MA", "MAR", "摩洛哥", "Morocco", "504", "非洲"),
    MCO("MC", "MCO", "摩纳哥", "Monaco", "492", "欧洲"),
    MDA("MD", "MDA", "摩尔多瓦", "Moldova", "498", "欧洲"),
    MDG("MG", "MDG", "马达加斯加", "Madagascar", "450", "非洲"),
    MDV("MV", "MDV", "马尔代夫", "Maldives", "462", "亚洲"),
    MEX("MX", "MEX", "墨西哥", "Mexico", "484", "北美洲"),
    MHL("MH", "MHL", "马绍尔群岛", "Marshall Islands", "584", "大洋洲"),
    MKD("MK", "MKD", "北马其顿", "North Macedonia", "807", "欧洲"),
    MLI("ML", "MLI", "马里", "Mali", "466", "非洲"),
    MLT("MT", "MLT", "马耳他", "Malta", "470", "欧洲"),
    MMR("MM", "MMR", "缅甸", "Myanmar", "104", "亚洲"),
    MNG("MN", "MNG", "蒙古", "Mongolia", "496", "亚洲"),
    MNP("MP", "MNP", "北马里亚纳", "Northern Mariana Island", "580", "大洋洲"),
    MOZ("MZ", "MOZ", "莫桑比克", "Mozambique", "508", "非洲"),
    MRT("MR", "MRT", "毛里塔尼亚", "Mauritania", "478", "非洲"),
    MSR("MS", "MSR", "蒙特塞拉特", "Montserrat", "500", "北美洲"),
    MTQ("MQ", "MTQ", "马提尼克", "Martinique", "474", "北美洲"),
    MUS("MU", "MUS", "毛里求斯", "Mauritius", "480", "非洲"),
    MWI("MW", "MWI", "马拉维", "Malawi", "454", "非洲"),
    MYS("MY", "MYS", "马来西亚", "Malaysia", "458", "亚洲"),
    MYT("YT", "MYT", "马约特", "Mayotte", "175", "非洲"),
    NAM("NA", "NAM", "纳米比亚", "Namibia", "516", "非洲"),
    NCL("NC", "NCL", "新喀里多尼亚", "New Caledonia", "540", "大洋洲"),
    NER("NE", "NER", "尼日尔", "Niger", "562", "非洲"),
    NFK("NF", "NFK", "诺福克岛", "Norfolk Island", "574", "大洋洲"),
    NGA("NG", "NGA", "尼日利亚", "Nigeria", "566", "非洲"),
    NIC("NI", "NIC", "尼加拉瓜", "Nicaragua", "558", "北美洲"),
    NIU("NU", "NIU", "纽埃", "Niue", "570", "大洋洲"),
    NLD("NL", "NLD", "荷兰", "Netherlands", "528", "欧洲"),
    NOR("NO", "NOR", "挪威", "Norway", "578", "欧洲"),
    NPL("NP", "NPL", "尼泊尔", "Nepal", "524", "亚洲"),
    NRU("NR", "NRU", "瑙鲁", "Nauru", "520", "大洋洲"),
    NZL("NZ", "NZL", "新西兰", "New Zealand", "554", "大洋洲"),
    OMN("OM", "OMN", "阿曼", "Oman", "512", "亚洲"),
    PAK("PK", "PAK", "巴基斯坦", "Pakistan", "586", "亚洲"),
    PAN("PA", "PAN", "巴拿马", "Panama", "591", "北美洲"),
    PCN("PN", "PCN", "皮特凯恩", "Pitcairn Islands", "612", "大洋洲"),
    PER("PE", "PER", "秘鲁", "Peru", "604", "南美洲"),
    PHL("PH", "PHL", "菲律宾", "Philippines", "608", "亚洲"),
    PLW("PW", "PLW", "帕劳", "Palau", "585", "大洋洲"),
    PNG("PG", "PNG", "巴布亚新几内亚", "Papua New Guinea", "598", "大洋洲"),
    POL("PL", "POL", "波兰", "Poland", "616", "欧洲"),
    PRI("PR", "PRI", "波多黎各", "Puerto Rico", "630", "北美洲"),
    PRK("KP", "PRK", "朝鲜", "Korea", "408", "亚洲"),
    PRT("PT", "PRT", "葡萄牙", "Portugal", "620", "欧洲"),
    PRY("PY", "PRY", "巴拉圭", "Paraguay", "600", "南美洲"),
    PSE("PS", "PSE", "巴勒斯坦", "Palestine", "275", "亚洲"),
    PYF("PF", "PYF", "法属波利尼西亚", "French Polynesia", "258", "大洋洲"),
    QAT("QA", "QAT", "卡塔尔", "Qatar", "634", "亚洲"),
    REU("RE", "REU", "留尼汪", "Reunion", "638", "非洲"),
    ROU("RO", "ROU", "罗马尼亚", "Romania", "642", "欧洲"),
    RUS("RU", "RUS", "俄罗斯", "Russian", "643", "欧洲"),
    RWA("RW", "RWA", "卢旺达", "Rwanda", "646", "非洲"),
    SAU("SA", "SAU", "沙特阿拉伯", "Saudi Arabia", "682", "亚洲"),
    SDN("SD", "SDN", "苏丹", "Sudan", "736", "非洲"),
    SEN("SN", "SEN", "塞内加尔", "Senegal", "686", "非洲"),
    SGP("SG", "SGP", "新加坡", "Singapore", "702", "亚洲"),
    SGS("GS", "SGS", "南乔治亚岛和南桑德韦奇岛", "South Georgia and South Sandwich Islands", "239", "南美洲"),
    SHN("SH", "SHN", "圣赫勒拿", "Saint Helena", "654", "非洲"),
    SJM("SJ", "SJM", "斯瓦尔巴岛和扬马延岛", "Svalbard and JanMayen", "744", "欧洲"),
    SLB("SB", "SLB", "所罗门群岛", "Solomon Islands", "090", "大洋洲"),
    SLE("SL", "SLE", "塞拉利昂", "Sierra Leone", "694", "非洲"),
    SLV("SV", "SLV", "萨尔瓦多", "El Salvador", "222", "北美洲"),
    SMR("SM", "SMR", "圣马力诺", "San Marion", "674", "欧洲"),
    SOM("SO", "SOM", "索马里", "Somalia", "706", "非洲"),
    SPM("PM", "SPM", "圣皮埃尔和密克隆", "Saint Pierre and Miquelon", "666", "北美洲"),
    SRB("RS", "SRB", "塞尔维亚", "Serbia", "688", "欧洲"),
    SSD("SS", "SSD", "南苏丹", "South Sudan", "728", "非洲"),
    STP("ST", "STP", "圣多美和普林西比", "Sao Tome and Principe", "678", "非洲"),
    SUR("SR", "SUR", "苏里南", "Suriname", "740", "南美洲"),
    SVK("SK", "SVK", "斯洛伐克", "Slovakia", "703", "欧洲"),
    SVN("SI", "SVN", "斯洛文尼亚", "Slovenia", "705", "欧洲"),
    SWE("SE", "SWE", "瑞典", "Sweden", "752", "欧洲"),
    SWZ("SZ", "SWZ", "斯威士兰", "Swaziland", "748", "非洲"),
    SYC("SC", "SYC", "塞舌尔", "Seychells", "690", "非洲"),
    SYR("SY", "SYR", "叙利亚", "Syria", "760", "亚洲"),
    TCA("TC", "TCA", "特克斯和凯科斯群岛", "Turks and Caicos", "796", "北美洲"),
    TCD("TD", "TCD", "乍得", "Chad", "148", "非洲"),
    TGO("TG", "TGO", "多哥", "Togo", "768", "非洲"),
    THA("TH", "THA", "泰国", "Thailand", "764", "亚洲"),
    TJK("TJ", "TJK", "塔吉克斯坦", "Tajikistan", "762", "亚洲"),
    TKL("TK", "TKL", "托克劳", "Tokelau", "772", "大洋洲"),
    TKM("TM", "TKM", "土库曼斯坦", "Turkmenistan", "795", "亚洲"),
    TLS("TL", "TLS", "东帝汶", "East Timor", "626", "亚洲"),
    TON("TO", "TON", "汤加", "Tonga", "776", "大洋洲"),
    TTO("TT", "TTO", "特立尼达和多巴哥", "Trinidad And Tobago", "780", "北美洲"),
    TUN("TN", "TUN", "突尼斯", "Tunisia", "788", "非洲"),
    TUR("TR", "TUR", "土耳其", "Turkey", "792", "亚洲"),
    TUV("TV", "TUV", "图瓦卢", "Tuvalu", "798", "大洋洲"),
    TWN("TW", "TWN", "台湾省", "Taiwan, Province of China", "158", "亚洲"),
    TZA("TZ", "TZA", "坦桑尼亚", "Tanzania", "834", "非洲"),
    UGA("UG", "UGA", "乌干达", "Uganda", "800", "非洲"),
    UKR("UA", "UKR", "乌克兰", "Ukraine", "804", "欧洲"),
    UMI("UM", "UMI", "美国本土外小岛屿", "United States Minor Outlying Islands", "581", "大洋洲"),
    URY("UY", "URY", "乌拉圭", "Uruguay", "858", "南美洲"),
    USA("US", "USA", "美国", "United States", "840", "北美洲"),
    UZB("UZ", "UZB", "乌兹别克斯坦", "Uzbekistan", "860", "亚洲"),
    VAT("VA", "VAT", "梵蒂冈", "Vatican", "336", "欧洲"),
    VCT("VC", "VCT", "圣文森特和格林纳丁斯", "Saint Vincent And The Grenadines", "670", "北美洲"),
    VEN("VE", "VEN", "委内瑞拉", "Venezuela", "862", "南美洲"),
    VGB("VG", "VGB", "英属维尔京群岛", "British Virgin Islands", "092", "北美洲"),
    VIR("VI", "VIR", "美属维尔京群岛", "Virgin Islands of the United States", "850", "北美洲"),
    VNM("VN", "VNM", "越南", "Viet Nam", "704", "亚洲"),
    VUT("VU", "VUT", "瓦努阿图", "Vanuatu", "548", "大洋洲"),
    WLF("WF", "WLF", "瓦利斯和富图纳", "Wallis and Futuna", "876", "大洋洲"),
    WSM("WS", "WSM", "萨摩亚", "Samoa", "882", "大洋洲"),
    YEM("YE", "YEM", "也门", "Yemen", "887", "亚洲"),
    ZAF("ZA", "ZAF", "南非", "South Africa", "710", "非洲"),
    ZMB("ZM", "ZMB", "赞比亚", "Zambia", "894", "非洲"),
    ZWE("ZW", "ZWE", "津巴布韦", "Zimbabwe", "716", "非洲");
    private final String twoCharCode;
    private final String threeCharCode;
    private final String chineseName;
    private final String englishName;
    private final String numberCode;
    private final String continent;

    CountryCode(String twoCharCode,String threeCharCode,String chineseName, String englishName, String numberCode, String continent) {
        this.twoCharCode = twoCharCode;
        this.threeCharCode = threeCharCode;
        this.chineseName = chineseName;
        this.englishName = englishName;
        this.numberCode = numberCode;
        this.continent = continent;
    }

    public String getTwoCharCode() {
        return twoCharCode;
    }

    public String getThreeCharCode() {
        return threeCharCode;
    }

    public String getNumberCode() {
        return numberCode;
    }

    public String getChineseName() {
        return chineseName;
    }

    public String getEnglishName() {
        return englishName;
    }

    public String getContinent() {
        return continent;
    }


    /**
     * 根据三字符代码查询对象
     * @param threeCharCode
     */
    public static CountryCode getObjectByThreeCharCode(String threeCharCode) {
        for (CountryCode myEnum : values()) {
            if (myEnum.threeCharCode.equals(threeCharCode)) {
                return myEnum;
            }
        }
        // 如果没有匹配项，直接抛出异常，防止业务忘记进行异常处理
        throw new BizException(CommonEnum.CAN_NOT_FIND_IN_DICTIONARY);
    }

    /**
     * 根据中文简称查询对象
     * @param chineseName
     */
    public static CountryCode getObjectByChineseName(String chineseName) {
        for (CountryCode myEnum : values()) {
            if (myEnum.chineseName.equals(chineseName)) {
                return myEnum;
            }
        }
        // 如果没有匹配项，直接抛出异常，防止业务忘记进行异常处理
        throw new BizException(CommonEnum.CAN_NOT_FIND_IN_DICTIONARY);
    }

    /**
     * 根据数字代码查询对象
     * @param numberCode
     */
    public static CountryCode getObjectByNumberCode(String numberCode) {
        for (CountryCode myEnum : values()) {
            if (myEnum.numberCode.equals(numberCode)) {
                return myEnum;
            }
        }
        // 如果没有匹配项，直接抛出异常，防止业务忘记进行异常处理
        throw new BizException(CommonEnum.CAN_NOT_FIND_IN_DICTIONARY);
    }


}

